1. Field of the Invention
The present invention relates to a software registering/managing system. In particular, the present invention provides a system and method for automatically registering a software program from a user terminal to a database through a communication line and for managing registered software programs.
2. Description of the Related Art
In recent years, the number of personal computer based communication networks has grown remarkably. The users of such communication networks want to obtain software programs from the communication networks through the communication lines. However, a practical system that can automatically deliver software programs has not been accomplished at the present time. As an example of such a system, a user will send an order for a desired software program to a delivery center through his terminal. The delivery center will send the ordered software program to the user's terminal.
To accomplish automatic delivery of a software program, the applicant of the present invention has disclosed a related art reference titled "Remote Install System and Method thereof" as Japanese Patent Application Serial No. 7-1797, which was filed Jan. 10, 1995 in Japan and was not published before the priority date of the present application. Next, with reference to the accompanying drawings, the related art reference will be described.
FIG. 1 is a block diagram showing a structure of a remote install system according to the related art reference. The remote install system shown in FIG. 1 comprises a host computer 21 (that is disposed in a software delivery center), a user terminal 23, and a communication line 22 (that connects the host computer 21 and the user terminal 23). The terminal 23 is, for example, a personal computer disposed remotely from the delivery center. The user terminal is normally disposed in the house of the user. The communication line 22 is, for example, a personal computer based communication network.
The host computer 21 stores a software program group 35, a first key table 32, and a second key table 33, in respective storage regions thereof. The software program group 35 includes a plurality of software programs that can be delivered. The first key table 32 and the second key table 33 store lists of keywords used for selecting a software program from the software program group 35.
When the user requests the host computer 21 for a list of keywords from his terminal 23, the host computer 21 sends the first key table 32 and the second key table 33 one after the other to the terminal 23. A display unit 24 of the terminal 23 displays a list of keywords. The user selects a desired software program with a keyword of the list displayed on the screen of the display unit 24. The input keyword is sent to the host computer 21.
The host computer 21 displays a menu including names of software programs corresponding to the keywords to the display unit 24. The user selects a desired software program from the menu. The information corresponding to the selected software program is sent to the host computer 21. The host computer 21 extracts the content (file) of the selected software from the software program group 35 and stores it in a directory "D:.Yen.SOUKO" for use with the software delivery, on the hard disk 25 of the terminal 23. (Note that the symbol ".Yen." is a Japanese JIS code representing the Japanese currency yen and is used instead of ".backslash." (ASCII 5CH) and that "SOUKO"is a Japanese word that means a warehouse.)
At this point, an icon 37 for starting up the delivered software program is automatically registered. The icon 37 is displayed in a directory window 36 formed on the screen of the display unit 24 corresponding to the directory "D:.Yen.SOUKO". For example, when the terminal 23 has installed WINDOWS (which is a trade mark of the Microsoft Corporation), the delivered software program is registered to WINDOWS. Thereafter, by selecting the icon 37 with an input device such as a mouse, the user can use the delivered software program.
An environment file 31 that contains operating environments of hardware devices, software tools and so forth of the terminal 23, is generated in the terminal 23 and sent to the host computer 21 when the terminal 23 accesses the host computer 21. The host computer 21 holds the received environment file 31 for each user so that the host computer 21 determines whether or not the terminal 23 can operate the software program selected by the user.
The host computer 21 provides an individual setup file 34 for each user. A set of files necessary for operating the software program selected by the user and storage locations thereof are contained in the setup file 34. The host computer 21 sends the set of files and setup file 34 to the terminal 23. Thus, the terminal 23 can automatically install the software program selected by the user.
Next, with reference to FIGS. 2 to 4, an operational flow of the delivery of a software program by the remote install system shown in FIG. 1 will be described.
In FIG. 2, a terminal 23 of a user A obtains information of the operating environment when a communication terminal software program is installed. The terminal 23 generates an environment file 38 that stores the obtained information (at step S1). At this point, the host computer 21 obtains information that takes a long time to get, or that needs to be requested from the user, such as the type of the terminal of the user, the location of the directory to which the software program is delivered, etc.
To determine an environment variable SOUKO that represents the storage location, the terminal 23 checks whether or not the hard disk 25 has an empty region of the required storage capacity. When the hard disk 25 has the required storage capacity, the terminal 23 creates a directory for the delivery on the root directory of the hard disk 25. At this point, the terminal 23 automatically creates the directory name and so forth. The user A only acknowledges this process. In other words, the user A does not need to input the directory name and so forth.
In this example, as the model name of the terminal of the user A and the directory name of SOUKO, "TOWNS" (that is an abbreviation of FM-TOWN, which is a personal computer made by the Fujitsu Limited) and "D:.Yen.SOUKO" are written to the environment file 38, respectively. If necessary, the user can change the directory "D:.Yen.SOUKO" to another suitable directory.
When the predetermined partition does not have sufficient storage capacity, the terminal 23 searches for another partition that has blank space with the largest storage capacity, and creates the directory for the delivery in the located partition. In practice, when the directory "D:.Yen.SOUKO" becomes full, the terminal 23 outputs a message "THE DIRECTORY "D:.Yen.SOUKO" IS FULL. WOULD YOU LIKE TO CHANGE THE DIRECTORY OF SOUKO TO F:.Yen.SOUKO? (YES/NO)" on the screen of the display unit 24. When the user A enters "YES", the directory "F:.Yen.SOUKO" becomes a new directory for the delivery. If any hard disk of the terminal 23 does not have sufficient storage capacity, the terminal 23 outputs a message "SORRY. THE STORAGE CAPACITY OF THE SYSTEM IS INSUFFICIENT. PLEASE, INCREASE THE STORAGE CAPACITY." on the screen of the display unit 24.
Next, when the terminal software program is started (namely, the terminal 23 accesses the host computer 21), the terminal 23 obtains information that may vary after the installation, such as the states of hard disks and memories (at step S2). In this example, information representing that a hard disk of the user A is designated as drive D and that the blank space is 300 MBytes, is written to the environment file 38. The content of the environment file 38 is sent to the host computer 21 by a command "RIS.sub.-- SENDENV" when the user A accesses the host computer 21 (at step S3).
The host computer 21 holds the received information as an environment file 39 of the user A. The environment file 39 contains the model name of the user's terminal 23, the hard disk information HD, the storage location SOUKO, the OS (operating system) name in use on the terminal 23, and the location thereof. In this example, the environment file 39 shows that the OS of the terminal 23 of the user A is WINDOWS and that an environment variable WINDIR representing the storage location thereof is "D:.Yen.WINDOWS".
When the terminal 23 receives a message "RIS.sub.-- SENDENV*RESP OK" as a response to the command "RIS.sub.-- SENDENV" from the host computer 21, the terminal 23 requests the host computer 21 for a first key list with a command "RIS.sub.-- KEYLIST" (at step S4). The host computer 21 sends back along with a message "RIS.sub.-- KEYLIST*RESP" the content of the first key table 32 to the terminal 23. In this example, the first key table 32 contains OS (operating system), programming languages, games, and so forth, as keywords corresponding to key numbers 1, 2, 3, and so forth.
When these keywords are displayed as a first key list on the screen of the display unit 24 (at step S5), the user A selects a first keyword from the first key list and inputs it to the terminal 23 (at step S6). Thus, the terminal 23 sends the selected key number of the first keyword along with a command "RIS.sub.-- KEYLIST" that requests a second key list to the host computer 21 (at step S7). In this example, the user A selects games as the first keyword. The terminal 23 sends the key number 3 to the host computer 21.
The host computer 21 obtains a second key table 33 with a pointer stored in the first key table 32 corresponding to the received key number and sends back the contents thereof along with a message "RIS.sub.-- KEYLIST*RESP" to the terminal 23.
The second key table 33 contains RPGs (role playing games), actions, puzzle/quiz, and so forth, corresponding to key numbers 51, 52, 53, and so forth.
Generally, a plurality of second key tables are provided corresponding to keywords of the first key table 32. The number of second key tables is equal to or smaller than the number of keywords of the first table 32. When the number of second key tables is smaller than the number of keywords of the first table 32, two or more keywords of the first key table 32 represent the same second key table.
When keywords of the second key table are displayed as a second key list on the screen of the display unit 24 (at step S8), the user A selects a second keyword from the second key list and inputs it to the terminal 23 (at step S9 in FIG. 3). Thus, the terminal 23 sends the key numbers of the first keyword and second keyword selected by the user A along with a command "RIS.sub.-- LIST" that requests a list of software programs that correspond to these keywords to the host computer 21 (at step S10). In this example, the user A selects "actions" as the second keyword and the terminal 23 sends a key number 52 corresponding to "actions" to the host computer 21.
The host computer 21 searches the software program group 35 for software programs that correspond to the two key numbers of the first and second keywords. In this example, the first keyword and second keyword are not distinguished as searching conditions. In addition, the model of the terminal and the type of the OS are treated as default keywords. Thus, the host computer 21 searches the software program group 35 for software programs that correspond to these keywords including the first and second keywords and the default keywords. Thus, the host computer 21 prevents software programs that do not operate on TOWNS from being searched.
The host computer 21 sends along with a message "RIS.sub.-- LIST*RESP" a list containing the names of software programs and software program numbers that correspond to these keywords to the terminal 23. In this example, since software programs "TETRIS" and "Pin Ball" correspond to the key number 3 of the first keyword and the key number 52 of the second keyword, the host computer 21 sends the software program numbers 5 and 30 along with their names to the terminal 23.
When the list of the software programs sent from the host computer 21 is displayed on the screen of the display unit 24 (at step S11), the user A selects a desired software program from the list and inputs a key number corresponding to the selected software program to the terminal 23 (at step S12). The terminal 23 sends the selected software program number, along with a command "RIS.sub.-- CHKENV" that requests the host computer 21 to determine whether or not the environment of the user A is suitable for the operation of the selected software program, to the host computer 21 (at step S13). At this point, the user A selects "TETRIS" and the terminal 23 sends the software program number 5 corresponding to the software program to the host computer 21.
The host computer 21 prepares a check script 40 for determining whether or not the operating environment of the software program corresponding to the software program number selected by the user A accords with the environment of the terminal 23 of the user A, and performs an environment check. Since the environment check is automatically performed between an execution program of the check script 40 and the terminal software program of the terminal 23, the user A may not recognize the execution of the environment check (at step S14). When necessary, the host computer 21 may request some information from the user A.
In this example, as the operating environment of "TETRIS" selected by the user A, the OS is WINDOWS; the model of the terminal is TOWNS, PC98, and so forth; and the recommended directory (DIR) name of "TETRIS" is "TET". On the other hand, the user A's environment file 39 contains information representing that the model is TOWNS and that the OS is WINDOWS. When the operating environment of "TETRIS" is compared with the operating environment of the user A's environment file 39, it is clear that the OS and the model of the terminal 23 accord with those required for "TETRIS".
Since the check script 40 of "TETRIS" contains a command "ST4 @WINDIR@VBRJP200.DLL" for determining whether or not a file "VBRJP200.DLL" is present in a directory "WINDIR" representing the storage location of the OS of the terminal 23 of the user A (at MQ1), the host computer 21 sends a message "RIS.sub.-- CHECKENV*RESP" along with the command "ST4 @WINDIR@VBRJP200.DLL" to the terminal 23. At this point, with reference to user A's environment file 39, the host computer 21 substitutes "@WINDIR@" with "D:.Yen.WINDOWS" and sends it to the terminal 23. In this example, "@WINDIR@" represents the content of a variable WINDIR embedded between the two @s. The file "VBRJP200.DLL" is one of the file necessary for operating "TETRIS".
The terminal 23 determines whether or not the file "VBRJP200.DLL" is stored in the directory "WINDOWS" of the drive D, and sends back the result as "ANS" to the host computer 21. In this example, since the file "VBRJP200.DLL" is not stored in the directory "WINDOWS", a message "ANS=OFF" is sent back to the host computer 21.
Since the file "VBRJP200.DLL" is not stored in the terminal 23, the host computer 21 sends a message "WOULD YOU LIKE TO COPY "VBRJP200.DLL"? (YES/NO)" to the terminal 23 corresponding to the check script 40 (at MQ2). This message is displayed on the screen of the display unit 24. The user A inputs his reply to the inquiry and the terminal 23 sends the reply of the user A to the host computer 21. In this example, the "ANS=YES" is sent back to the host computer 21. The host computer 21 permits a remote install corresponding to the check script 40 (RIS=OK) and turns on a flag F2 that causes the file "VBRJP200.DLL" to be copied (at MA2).
When the file "VBRJP200.DLL" is stored in the designated directory of the terminal 23, since "ANS=ON" is sent back, the state of "RIS=OK" takes place (at MA1).
Since the environment check is automatically performed, software programs that do not accord with the environment of the terminal of the user A can be prevented from being delivered from the host computer 21. For example, after a user purchases a software program through the communication line 22, the problem in which the program does not operate on the user's terminal due to the lack of a particular driver, for example, can be prevented.
When the state of "RIS=OK" takes place, the host computer 21 completes the environment check and sends the determined result "JUDGE=OK" along with the directory name of the destination represented by the variable "SOUKODIR" to the terminal 23. The "SOUKODIR" is designated in such a manner that "TET" that is the recommended directory name is added to "D:.Yen.SOUKO", which is the directory of "SOUKO" stored in the user A's environment file.
At this point, flags representing the install (RIS) (YES/NO), the registration of the icon of the install program (installer) (ICON) (YES/NO), and the down-load (DLOAD) (YES/NO) are sent to the terminal 23. Corresponding to these flags RIS, ICON, and DLOAD, the host computer 21 sends the availability of the install, the registration of the icon of the installer, and the download to the terminal 23.
In this example, the install represents an operation in which a software program selected by the user A is registered to a system such as WINDOWS of the terminal 23, so that it can be operated on the terminal 23. Thus, in this case, the install includes an operation in which the execution file of the software program is registered as an icon in WINDOWS. On the other hand, the registration of the icon of the installer represents an operation in which a software program to be installed is registered as an icon on the terminal 23.
In this example, conditions of which the install and the download are permitted ("RIS=OK" and "DLOAD=OK") are provided. However, the registration of the icon of the installer is not registered "ICON=NG". When a software program selected has a complicated install program, a message "REGISTRATION OF ICON OF INSTALLER IS REQUIRED INSTEAD" is displayed instead of the permission for the install. When a terminal that uses WINDOWS requests the host computer for an application program for TOS (TOWNS' OS), only the download operation is permitted.
Next, the terminal software program of the terminal 23 designates the priority of the install, the registration of the icon of the installer, and the download, in order. The terminal software program designates the highest priority operation as a default operation and displays the default operation on the screen of the display unit 24. In this example, the terminal software program designates the install, that has a higher priority than the download, as the default operation. The default operation is displayed in an install method selecting window.
FIG. 5 is a schematic diagram showing an example of the install method selecting window. In FIG. 5, "REGISTER SYSTEM" corresponds to the install that is selected as a default operation.
The user A checks the install methods displayed on the screen and inputs a desired install method (at step S15). At this point, the user A can change the install methods displayed on the screen. For example, when the user A wants to register the icon of the installer, he selects "REGISTER ICON OF INSTALLER" in the install method selecting window shown in FIG. 5.
When the user A wants to quickly perform the install, he selects "REGISTER SYSTEM". When the user A wants to use a custom install, he selects "REGISTER ICON OF INSTALLER". When the user A wants to change the storage location of the selected program (install the selected software program to another terminal), he selects "DOWNLOAD". When the user A selects the "DOWNLOAD", he can test whether or not a software program corresponding to another terminal operates on the terminal 23.
Next, the terminal 23 automatically creates the subdirectory for the delivery "D:.Yen.SOUKO.Yen.TET" designated by the host computer 21 to the hard disk 25 (at step S16). When the terminal 23 has the subdirectory "D:.Yen.SOUKO.Yen.TET", it creates, for example, a subdirectory "D:.Yen.SOUKO.Yen.TET001". When the terminal 23 already has the subdirectory "D:.Yen.SOUKO.Yen.TET001", it creates a subdirectory "D:.Yen.SOUKO.Yen.TET002".
A main file 41 of "TETRIS" is composed of files "TET1.LZH" (F1) and "VBRJP200.DLL" (F2). The file "TET1.LZH" is composed by compressing four files "TETRIS.EXT", "TOWNS.DRV", "PC98.DRV", and "MAC.DRC". When the file "TET1.LZH" is decompressed, these four files "TETRIS.EXT", "TOWNS.DRV", "PC98.DRV", and "MAC.DRC" are generated. The file "TET1.LZH" is decompressed after it is delivered from the host computer 21 to the terminal 23.
The terminal 23 that has created the subdirectory for the delivery sends the selected software program number along with a command "RIS.sub.-- INSTALL", that requests the remote install, to the host computer 21 (at step S17 in FIG. 4). The host computer 21 starts the remote install of the software program corresponding to the software program number to the terminal 23. The remote install is automatically performed between the host computer 21 and the terminal 23 corresponding to the install script 42 of "TETRIS" (at step S18).
The install script 42 contains a command for downloading the file "TET1.LZH" to a storage location "@SOUKODIR@" of the terminal of the user A. Thus, the host computer 21 substitutes "@SOUKODIR@" with "D:.Yen.SOUKO.Yen.TET", and downloads the file "TET1.LZH" to the directory "D:.Yen.SOUKO.Yen.TET" of the hard disk 25.
When the terminal 23 sends a message "DOWNLOAD COMPLETED (OK)" to the host computer 21, it substitutes "@WINDIR@" with "D:.Yen.WINDOWS" and downloads the file "VBRJP200.DLL" to the directory "D:.Yen.WINDOWS" of the hard disk 25.
When the terminal 23 sends a message "DOWNLOAD COMPLETED (OK)" to the host computer 21, it sends a command "LHA X D:.Yen.SOUKO.Yen.TET.Yen.TET1.LZH" for causing the file "TET1.LZH" to be decompressed to the storage location "@SOUKODIR@". Thus, the terminal 23 decompresses the file "TET1.LZH" to the above-mentioned four files "TETRIS.EXE", "TOWNS.DRV", "PC98.DRV", and "MAC.DRC". These decompressed files are stored in the subdirectory "D:.Yen.SOUKO.Yen.TET" in which the file "TET1.LZH" has been stored.
When the terminal 23 sends a message "FILE DECOMPRESSED (OK)" to the host computer 21, it sends a message "MOVE D:.Yen.SOUKO.Yen.TET.Yen.TOWNS.DRV D:.Yen.WINDOWS.Yen.FONT.DRV", for moving the file "MODEL@.DRV" from the storage location "@SOUKODIR@" (D:.Yen.SOUKO.Yen.TET) to the storage location @WINDIR@ (D:.Yen.WINDOWS) and changing the file name to "FONT.DRV", to the terminal 23. At this point, with reference to the user A's environment file 39, the host computer 21 substitutes "MODEL@" with "TOWNS". Thus, the terminal 23 moves the file "TOWNS.DRV" from the directory "D:.Yen.SOUKO.Yen.TET" to the directory "D:.Yen.WINDOWS" and changes the file name to "FONT.DRV".
When the terminal 23 sends a message "RENAME COMPLETED (OK)" to the host computer 21, the host computer 21 sends a command "ICON TETRIS.EXE" for registering the icon of "TETRIS's" execution file "TETRIS.EXT" to the terminal 23. Thus, the terminal 23 registers the file "TETRIS.EXE" in the subdirectory "D:.Yen.SOUKO.Yen.TET" as an icon of the terminal 23. Consequently, the icon 37 for starting the file "TETRIS.EXE" is displayed in the directory window 36 on the screen of the display unit 24. By selecting the icon 37, the program "TETRIS" gets started.
When the terminal 23 sends a message "ICON REGISTERED (OK)" to the host computer 21, the host computer 21 returns a message representing that the remote install has been completed, to the terminal 23. Thus, the install is completed. When the terminal 23 receives the message "REMOTE INSTALL COMPLETED" from the host computer 21, the user A of the terminal 23 selects a next software program if required, and the terminal 23 performs the remote install thereof. Alternatively, the process is completed (at step S19).
When a software program is installed at step S18, if the storage capacity of the software program is larger than the blank space of the storage location to which the software program is to be downloaded, the storage location is changed.
Next, with reference to FIGS. 6 to 11, examples of protocols of a remote install and examples of a first keyword and a second keyword displayed on the screen of the display unit will be described.
FIG. 6 is a program code list showing an example of a protocol with which the terminal 23 sends environment information, in the case that the terminal 23 accesses the host computer 21 at step S3 shown in FIG. 2. The protocol shown in FIG. 6 contains a request ID "RID", a machine ID "MID" for identifying a machine, date and time "TIME", and machine information for the terminal 23 "MACHINE:".
In "MACHINE:", drive information "DRV:" contains information such as storage capacities and drive names of drives such as the hard disk 25 connected to the terminal 23. For example, in "PARTINF:", "CAPACITY" represents the storage capacity of a partition. "VACANT" represents the storage capacity of a blank region. "DRVNAME" represents the drive name of a partition.
"DRV:" is followed by a directory "SOUKODIR" in which delivered software programs are stored, and by a directory "WINDIR" in which the OS (WINDOWS) is stored. In this example, "SOUKODIR=D:.Yen.RIS.Yen.SOUKO" and "WINDIR=D:.Yen.WINDOWS" are written. Thereafter, information about memories "MEM:" is written. With "SOUKODIR", the terminal 23 notifies the host computer 21 of the storage location of software programs to be delivered.
"MACHINE:" is followed by a machine password "MPSWD" of the terminal 23 and so forth.
FIG. 7 is a program code list showing a protocol with which the host computer 21 sends a directory "SOUKODIR" and a subdirectory to the terminal 23 upon completion of the environment check at step S14 shown in FIG. 3. In the protocol shown in FIG. 7, a request ID "RID" and a determined result of an environment check "JUDGE" are written. Thereafter, information about the storage location of software programs to be delivered "STRPLACE:" is written.
In "STRPLACE:", "SOFT" represents a software program number selected by the user at step S12 shown in FIG. 3. "WORKDIR" represents a working area. "SOUKODIR" represents the storage location of a software program designated by the host computer 21. In this example, "WORKDIR" is the same as "SOUKODIR" shown in FIG. 6. "SOUKODIR" is composed of "SOUKODIR" shown in FIG. 6 and a subdirectory name "FM".
"STRPLACE:" is followed by the size of the working area, "WORKSIZE", and the size of the storage location of a software program to be delivered, "SOUKOSIZE".
FIG. 8 is a program code list of a protocol with which the host computer 21 sends a first key list and a second key list to the terminal 23, and then the terminal 23 sends back a key number of a keyword selected by the user A to the host computer 21 at steps S4 to S9 shown in FIGS. 2 and 3. In the protocol shown in FIG. 8, when the terminal 23 requests the host computer 21 for a first key list with a command "RIS.sub.-- KEYLIST", the host computer 21 sends back a message "RIS.sub.-- KEYLIST*RESP" along with the content of the first key table "KEYLIST:" to the terminal 23. In "KEYLIST:", keywords NAME="OS", "PROGRAMMING LANGUAGES", "GAMES", and so forth corresponding to key number KEY=1, 2, 3, and so forth are written.
Next, the terminal 23 sends a command "RIS.sub.-- KEYLIST" along with the key number 3 corresponding to the first keyword "GAMES" selected by the user A to the host computer 21, it sends back a message "RIS.sub.-- KEYLIST*RESP" along with the content of the second key table, "KEYLIST:", corresponding to the key number 3. In "KEYLIST:", keyword NAME="RPGS", "ACTIONS", "PUZZLE/QUIZ", "SIMULATION", "JOKE", and so forth corresponding to key numbers=51, 52, 53, 54, 55, and so forth are written.
The terminal 23 sends a command "RIS.sub.-- LIST" along with the key numbers 52 and 53 corresponding to the second keywords "ACTIONS" and "PUZZLE/QUIZ" selected by the user A to the host computer 21, so as to request it for a list of software programs corresponding to the three key numbers 3, 52, and 53. In this example, since the host computer 21 has stored the key number 3 of the first keyword, the terminal 23 sends only the key numbers 52 and 53 of the second keywords along with the command "RIS.sub.-- LIST".
FIG. 9 is a schematic diagram showing an example of first keywords and second keywords displayed on the screen of the display unit 24. The first and second keywords shown in FIG. 9 differ from those shown in FIG. 8. On the screen of the display unit 24 of the user A, for example, first keywords such as "PICTURES" and "GAMES" are displayed. When the user A selects a first keyword, second keywords, such as "TOOLS", "TEXTS", "DOS", "WIN", "PICTURES", "SOUND", and "GAMES" are displayed. The second keywords include categories such as "PICTURES" and "GAMES" that overlap with those of the first keywords.
The user A can select any keyword on the screen of the display unit 24. For example, the user A selects "PICTURES" as a first keyword and "TOOLS", "DOS", "GAMES", or the like as a second keyword. As another example, the user A selects "GAMES" as a first keyword and "DOS", "WIN", "PICTURES", "SOUND", or the like as a second keyword. Alternatively, the user A may select two or more second keywords at one time.
Generally, there are many keywords for selecting a desired software program from the software program group 35. Thus, when all software programs of the software program group 35 are displayed at the same time, they are displayed in disorder. To prevent this problem, keywords may be displayed with a menu in a tree structure. However, in this case, the first keyword that is selected is important. When the first keyword is incorrectly selected, a desired software program cannot be obtained.
To solve this problem, when keywords are displayed with two hierarchical levels in such a manner that they overlap in each hierarchial level, as shown in FIG. 9, the user can flexibly select a desired one from a large number of keywords. It should be noted that the number of hierarchical levels is not limited to two. Instead, keywords may be categorized in many hierarchical levels.
Each software program included in the software program group 35 is stored in such a manner that it correlates with several keywords. For example, a software program A may have three keywords "GAMES", "PICTURES", and "DOS". A software program B may have four keywords "PICTURES", "TOOLS", "WIN", and "GAMES". Thus, when the user A selects two keywords "PICTURES" and "GAMES", the host computer 21 sends a list of software programs that include these two software programs to the terminal 23, and the display unit of the terminal 23 displays the list on the screen.
FIG. 10 is a program code list showing another example of a protocol with which the terminal 23 sends environment information to the host computer 21 in the case that the terminal 23 accesses the host computer 21 at step S3 shown in FIG. 2. In the protocol shown in FIG. 10, "MODEL" in machine information "MACHINE:" represents information obtained when the terminal software program is installed at step S1 shown in FIG. 2. In this example, "MODEL" represents TOWNS that is the model of the terminal 23. "VACANT" in "PARTINF:" is information obtained before the terminal 23 accesses the host computer 21 at step S3 shown in FIG. 2. In this example, "VACANT" represents the storage capacity of the blank space of the related partition.
FIG. 11 is a program code list showing an example of a protocol for performing the environment check at step S14 and for starting the install at step S17. In the protocol shown in FIG. 11, the terminal 23 sends a command "RIS.sub.-- CHKENV" along with a software program number (software program code) "SOFT=5" selected by the user A to the host computer 21, so as to request the host computer 21 to perform the environment check.
The host computer 21 sends a message "RIS.sub.-- CHKENV*RESP" along with a command "CHKEXE:" for searching whether or not a file "VBRJP200.LDD" is present in the system directory of the terminal 23, to the terminal 23. "CHKEXE:" contains TAG="VBRJP200.DLL", CMD="ST4 D:.Yen.WIND0WS.Yen.SYSTEM.Yen.VBRJP200.DLL", WORKDIR="D:.Yen.RIS.Yen.KOBUTA" (for designating the working directory), SOUKODIR="D:.Yen.RIS.Yen.KOBUTA" (for designating the storage location for a software program to be delivered), and so forth.
The terminal 23 determines whether or not the file "VBRJP200.DLL" is present in the directory "WINDOWS.Yen.SYSTEM" of the drive D, and sends back the result "RESULT:" to the host computer 21. "RESULT:" contains TAG="VBRJP200.DLL" and VAL="OFF" (that is the determined result). This means that the file "VBRJP200.DLL" is not present in the system directory.
The host computer 21 sends a message "RIS.sub.-- CHKENV*RESP" along with a command "ASKCHK:" for inquiring of the user whether to install the selected software program to the terminal 23. "ASKCHK:" contains TAG="Q1", QUERY="TO EXECUTE THIS SOFTWARE PROGRAM . . . WOULD YOU LIKE TO INSTALL THE PROGRAM SOFTWARE?" (that is the inquiry to be displayed), and "ANS:" (that is the format of the reply).
The terminal 23 sends back a command "RIS.sub.-- CHKENV" along with a reply "RESULT:" that is input by the user A to the host computer 21. "RESULT:" contains TAG="Q1" and VAL="OK" (that is the result of the reply). This means that the software program can be installed.
Assuming no other problem on the operating environment, the host computer 21 sends a message "RIS.sub.-- CHKENV*RESP" along with an environment check result JUDGE="OK" to the terminal 23. The environment check result represents that the operating environment of the software program of the software program code number 5 accords with the operating environment of the terminal 23 and the software program can be installed to the terminal 23, except that the file "VBRJP200.DLL" is not present in the system directory of the terminal 23.
Since the environment check result is "OK", the terminal 23 sends a command "RIS.sub.-- INSTALL", along with TYPE="RIS" (that represents the type of the install method), "STRPLACE:" (that designates the storage location of the software program to be delivered), and so forth to the host computer 21, so that the host computer 21 installs the software program to the terminal 23. "STRPLACE:" contains "SOFT" (that is a software program code of the software program to be installed), "WORKDIR" (that is a working directory), and "SOUKODIR" (that is the directory of the storage location of the software program to be delivered).
Thereafter, the host computer 21 installs the selected software program using the designated method. When the software program is installed, as described in step S18 in FIG. 4, the terminal 23 decompresses the file corresponding to a command sent from the host computer 21, and copies the decompressed files to the system. Since the terminal 23 successively sends back responses to the host computer 21, it can completely monitor the progress of the install operation.
However, in this method, since the terminal 23 should frequently communicate with the host computer 21, the communication efficiency is reduced. To solve this problem, the host computer 21 may prepare a setup file that contains commands for the install operation and sends the file to the terminal 23, so that it automatically installs the selected software program.
FIG. 12 is an operating flow chart showing an automatic install in the case that a setup file is used. The install operation shown in FIG. 12 is performed after the subdirectory is created at step S16 shown in FIG. 3.
The terminal 23 sends a command "RIS.sub.-- INSTALL" along with a software program number to the host computer 21 (at step S21). The host computer 21 starts the remote install of the software program corresponding to the software program number sended. The remote install operation is automatically performed between the host computer 21 and the terminal 23 corresponding to the install script 43 created by the host computer 21 (at step S22).
The host computer 21 substitutes "@SOUKODIR@" with "SOUKODIR=D:.Yen.SOUKO.Yen.TET" and downloads a file "TET1.LZH" to a subdirectory "D:.Yen.SOUKO.Yen.TET" of the hard disk 25.
When the host computer 21 receives a message "OK" that represents that the file has been downloaded from the terminal 23, the host computer 21 substitutes "@WINDOW@" with "D:.Yen.WINDOWS" and downloads a file "VBRJP200.DLL" to a directory "D:.Yen.WINDOWS" of the hard disk 25.
When the host computer receives a message "OK" that represents that the file "VBRJP200.DLL" has been downloaded from the terminal 23, the host computer 21 substitutes "@SOUKO@" with "SOUKO=D:@SOUKO", and downloads a user A's setup file 44 "SETUP.INF" that contains commands executed by the terminal 23, to a directory "D:.Yen.SOUKO" of the hard disk 25. At this point, with reference to a user A's environment file 39, the host computer 21 rewrites information such as "MODEL", "SOUKO", and "WINDIR" contained in the setup file "SETUP.INF" with information for the user A, and sends the resultant information to the terminal 23. The setup file "SETUP.INF" contains commands for decompressing the file "TET1.LZH", moving the file "TOWNS.DRV", renaming it, and registering the file "TETRIS.EXE" in the system.
When the terminal 23 sends a message "OK" that represents that the file has been downloaded to the host computer 21, it sends a command "INSTALL D:.Yen.SOUKO.Yen.SETUP.INF" for performing the automatic install corresponding to the commands contained in the setup file "SETUP.INF" to the terminal 23.
The terminal 23 performs the automatic install corresponding to the commands contained in the setup file "SETUP.INF". With a command "LOG OFF", the terminal 23 disconnects the communication line 22 between the terminal 23 and the host computer 21. Thereafter, since the communication line 22 is not used, a communication fee is not charged. Next, with a command "LHA X D:.Yen.SOUKO.Yen.TET.Yen.TET1.LZH", the terminal 23 decompresses the file "TET1.LZH" into the above-mentioned four files "TETRIS.EXE", "TOWNS.DRV", "PC98.DRV", and "MAC.DRC".
Thereafter, with a command "MOVE D:.Yen.SOUKO.Yen.TET.Yen.TOWNS.DRV D:.Yen.WINDOWS.Yen.FONT.DRV", the terminal 23 moves the file "TOWNS.DRV" from the directory "D:.Yen.SOUKO.Yen.TET" to "D:.Yen.WINDOWS" and changes the file name from "TOWNS.DRV" to "FONT.DRV". Next, with a command "ICON TETRIS.EXE", the terminal 23 registers an icon of the file "TETRIS.EXE". With a command "POFF", the terminal 23 turns off the power thereby terminating the install operation.
When the automatic install is performed with the setup file, the host computer 21 cannot finally check whether or not the install operation has been completed. However, since the number of communication sessions is reduced, the use efficiency of the communication line 22 can be improved. In addition, before the user purchases a software program, install conditions such as the model of the terminal are checked and the install is automatically performed.
FIG. 13 is a program code list showing another example of the setup file. In the setup file shown in FIG. 13, [DstDirs] represents a list of storage locations of files. [Files] represents a list of files to be stored. In this example, the setup file contains commands for storing an execution file "Soft2.Exe" of a software program selected by the user in a directory "D:.Yen.RIS.Yen.KOBUTA", renaming the file "TOWNS.DRV" that is a driver for TOWNS to "FONT.DRV", and storing the file "FONT.DRV" in the directory "D:.Yen.WINDOWS.Yen.SYSTEM".
When the setup file is generated, the content of [DstDirs] is "1=SOUKODIR, 2=WINDIR". When the host computer 21 obtains information of "SOUKODIR" and "WINDIR", the content of [DstDirs] is rewritten to "1=D:.Yen.RIS.Yen.KOBUTA, 2=D:.Yen.WINDOWS.Yen.SYSTEM". Thus, the content of the setup file can be dynamically or selectively changed.
As described above, according to the related art reference, a software program desired by a user can be automatically installed from a delivery center to a user's terminal through a communication line. With this system, software programs can be sold to users through the communication line.
At this point, since a delivered software program is stored in a dedicated directory, it is well-maintained and the user does not need to input a character string to designate a directory in which the delivered software program is stored.
The user can effectively select a desired software program on the screen of the display unit. In addition, the user can select the install method of the software program. Moreover, the user does not need to check the operating environment of the software. Instead, the operating environment is automatically checked.
Furthermore, when a software program is installed, the use of the communication line can be minimized.
However, the above-described remote install system has the following problem.
The host computer of the delivery center can automatically install software programs to terminals of users. On the other hand, the system does not have a portion that automatically registers a software program created by a user to the host computer. Thus, to register a software program to the host computer, an operator of the delivery center should upload desired files from a user's terminal to the host computer.
In addition, software programs registered in the delivery center are inflexibly managed. These software programs are delivered only through the delivery center. However, although the range of software programs users desire is wide, they must all access the system through the same delivery center. To effectively select a software program from the huge collection of software programs in the delivery center, the user should input, for example, a plurality of keywords.